Day 20 수학, 시뮬레이션, 문자열, 사칙연산

Day20 20단계 2023-11-09

1. 직사각형 넓이 구하기

class Solution {
    public int solution(int[][] dots) {
        int x = dots[0][0];
        int y = dots[0][1];
        int answer = 1;
        for (int i = 1; i < dots.length; i++) {
            if (x == dots[i][0]) {
                answer *= Math.abs(y - dots[i][1]);
            } else if (y == dots[i][1]) {
                answer *= Math.abs(x - dots[i][0]);
            }
        }
        return answer;
    }
}

2. 캐릭터의 좌표

class Solution {
    public int[] solution(String[] keyinput, int[] board) {
        int[] answer = {0, 0};
        for(String s : keyinput) {
            switch (s) {
                case "left":
                answer[0]--;
                if (answer[0] < (-1)*board[0]/2) answer[0] = (-1)*board[0]/2;
                break;
            case "right":
                answer[0]++;
                if (answer[0] > board[0]/2) answer[0] = board[0]/2;
                break;
            case "up":
                answer[1]++;
                if (answer[1] > board[1]/2) answer[1] = board[1]/2;
                break;
            case "down":
                answer[1]--;
                if (answer[1] < (-1)*board[1]/2) answer[1] = (-1)*board[1]/2;
                break;
            }
        }
        return answer;
    }
}

3. 최댓값 만들기 (2)

import java.util.*;
class Solution {
    public int solution(int[] numbers) {
        Arrays.sort(numbers);
        return Math.max(numbers[numbers.length-1]*numbers[numbers.length-2], numbers[0]*numbers[1]);
    }
}

4. 다항식 더하기

class Solution {
    public String solution(String polynomial) {
		String[] strArr = polynomial.split(" [+] ");
		int xint = 0;
		int num = 0;
		for (int i = 0; i < strArr.length; i++) {
			if (strArr[i].contains("x")) {
				String xnum = strArr[i].substring(0, strArr[i].length()-1);
				if (xnum.isEmpty()) xnum = "1";
				xint += Integer.parseInt(xnum);
			} else {
				num += Integer.parseInt(strArr[i]);
			}
		}
        
        String answer = "";
        if (xint > 1 && num != 0) answer = xint+"x + "+num;
        else if (num == 0) {
            if (xint > 1) answer = xint+"x";
            else if (xint == 1) answer = "x";
            else if (xint == 0) answer = "";
        } else if (xint == 0) {
            if (num != 0) answer = ""+num;
        } else answer = "x + "+num; 
        
        return answer;
    }
}